/*
* (c) 2014 University of Applied Sciences, Karlsruhe
* Project "Segmentation of depth data of a plenoptic camera"
* summer semester 2014
*
* contour_2d.h
* This file contains a class to represent flat 2D contours.
*/

#ifndef _CONTOUR_2D_H_
#define _CONTOUR_2D_H_

#include <vector>

#include "sgBase/geometrics/line_3d.h"

namespace sgMain
{
	/**
	This class is used to represent a contour in a 2D picture as a set of connected lines. Each contour consists of a set of lines which are connected with each other.
	*/
	class Contour2D
	{
	public:
		/**
		Constructor.
		*/
		Contour2D();

		/**
		Parameter constructor. Creates a contour with just one line.
		*/
		Contour2D(sgBase::Line3D line);

		/**
		The lines belonging to this contour.
		*/
		std::vector<sgBase::Line3D> contourLines;
	};

	/**
	Output steam operator.
	*/
	std::ostream& operator<< (std::ostream&, const Contour2D &contour2D);
}

#endif